#ifndef AVALON_THREADING_HPP
#define AVALON_THREADING_HPP
#include "Avalon/Base/Base.hpp"

namespace Avalon {
namespace Threading {
  template<typename F> class AsynchronousCallTask;
  template<typename T> class Async;
  template<typename T> class AsyncOwner;
  class AsyncTaskQueue;
  class BaseAsync;
  typedef boost::shared_ptr<BaseAsync> BaseAsyncPtr;
  class BaseAsyncOwner;
  typedef boost::shared_ptr<BaseAsyncOwner> BaseAsyncOwnerPtr;
  template<typename Lockable> class LockRelease;
  class StopWatch;
  class Task;
  class TimeoutException;
  class Timer;
}
}

#endif // AVALON_THREADING_HPP
